#ifndef M_DISNEY_MATERIAL
#define M_DISNEY_MATERIAL
#include"material.h"
#include"../BxDF/Disney.h"
#include"../BxDF/Lambertian.h"
class DisneyMaterial :public Material
{
private:
	Spectrum basecolor;
	Float metallic,roughness,flatness;
	Float eta;
	Float diffTrans, specTrans;
	Float specularTint;
	Float anisotropic;
	Float sheen,sheenTint;
	Float clearcoat, clearcoatGloss;
	Spectrum scatterDistance;
	bool thinSurface;
public:
	DisneyMaterial(
		Float metallic,
		Float roughness,
		Float flatness,
		Float eta,
		Float diffTrans,
		Float specTrans,
		Float specularTint,
		Float anisotropic,
		Float sheen,
		Float sheenTint,
		Float clearcoat,
		Float clearcoatGloss,
		Spectrum &scatterDistance,
		bool thinSurface)
		:
		metallic(metallic),
		roughness(roughness),
		flatness(flatness),
		eta(eta),
		diffTrans(diffTrans),
		specTrans(specTrans),
		specularTint(specularTint),
		anisotropic(anisotropic),
		sheen(sheen),
		sheenTint(sheenTint),
		clearcoat(clearcoat),
		clearcoatGloss(clearcoatGloss),
		scatterDistance(scatterDistance),
		thinSurface(thinSurface) {}
	shared_ptr<BSDF> createBSDF(Spectrum &_color, P3 &norm, TransportMode mode);
};
#endif // !M_DISNEY_MATERIAL

